package simtester.agent

import java.util.logging.Logger

class AgentLogger {

    def Logger log
    def testcaseId
    def user
    def iter

    AgentLogger(args) {
        log        = Logger.getLogger("simtester.agent")
        testcaseId = args.testcaseId
        user       = args.user
        iter       = args.iter
    }
    
    public void info(String msg) {
        extendedLog('info', msg)
    }
    
    public void severe(String msg) {
        extendedLog('severe', msg)
    }
    
    private extendedLog(String type, String msg) {
        msg = msg.replaceAll("\n", "\\\\n")
        
        StringBuilder logmsg = new StringBuilder(256)
        
        if (testcaseId) {
            logmsg.append('tc:')
            logmsg.append(testcaseId)
            logmsg.append(' ')
        }
        
        logmsg.append('user:')
        logmsg.append(user)
        logmsg.append(' iter:')
        logmsg.append(iter)
        logmsg.append('|')
        logmsg.append(msg)
        
        if (type == 'info') {
            log.info(logmsg.toString())
        } else {
            log.severe(logmsg.toString())
        }
    }
}
